package com.woniuxy.yygh.hsop.service;

import com.woniuxy.yygh.model.hosp.Department;
import com.woniuxy.yygh.model.hosp.Schedule;
import com.woniuxy.yygh.vo.hosp.ScheduleOrderVo;
import com.woniuxy.yygh.vo.hosp.ScheduleQueryVo;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * <P> @Author: ideaAdmin
 * <P> TODO: Class
 * <P> TODO: 排版信息接口
 * <P> Date: 2022/3/1:21:09
 * <P> Description:
 */

public interface ScheduleService {


    /**
     * TODO:上传排班信息
     **/
    void save(Map<String, Object> parameterMap);

    /**
     * TODO:分页查找排班的信息
     **/
    Page<Schedule> findPageSchedule(Integer page, Integer limit, ScheduleQueryVo scheduleQueryVo);

    /**
     * TODO:根据医院编号和排班编号删除排班
     **/
    void remove(String hoscode, String hosScheduleId);

    /**
     * TODO:医院编号和科室编号 查询排班规则数据
     **/
    Map<String, Object> getRuleSchedule(Integer page, Integer limit, String hoscode, String depcode);

    /**
     * TODO: 根据医院编号和科室编号 工作日期 查询排班信息
     **/
    List<Schedule> getDetailSchedule(String hoscode, String depcode, String workDate);

    /**
     * TODO:根据医院编号和科室编号 获取可预约的排班数据
     **/
    Map<String, Object> getBookingScheduleRule(Integer page, Integer limit, String hoscode, String depcode);

    /**
     * TODO:获取排班id 获得排班的数据
     **/
    Schedule getScheduleById(String scheduleId);

    /**
     * TODO:根据排班id获取预约下单数据
     **/
    ScheduleOrderVo getScheduleOrderVo(String scheduleId);

    /**
     * TODO:更新排班信息 用于MQ操作
     **/
    void update(Schedule schedule);
}
